package com.aliyun.messagemgt.dto.query;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * @Author: Xiaohang Lv
 * @Date: 2019/5/8 16:21
 */
public class MsgPushResultsQuery {
   @NotNull(message = "msgSourceId 不能为空")
    private List<String>  msgSourceId;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date startTime;

   /* @NotNull(message = "endTime 不能为空")*/
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endTime;
    /**
     * 消息唯一标识(消息发送方提供,以便解析这个消息)
     */
    private List<String> uniqueId;
    private static final int DEFAULT_PAGE_NUM = 1;

    private static final int DEFAULT_PAGE_SIZE = 1000;

    private Integer pageNum = DEFAULT_PAGE_NUM;

    private Integer pageSize = DEFAULT_PAGE_SIZE;

    public List<String> getUniqueId() {
        return uniqueId;
    }

    public MsgPushResultsQuery setUniqueId(List<String> uniqueId) {
        this.uniqueId = uniqueId;
        return this;
    }

    public List<String> getMsgSourceId() {
        return msgSourceId;
    }

    public MsgPushResultsQuery setMsgSourceId(List<String> msgSourceId) {
        this.msgSourceId = msgSourceId;
        return this;
    }

    public Date getStartTime() {
        return startTime;
    }

    public MsgPushResultsQuery setStartTime(Date startTime) {
        this.startTime = startTime;
        return this;
    }

    public Date getEndTime() {
        return endTime;
    }

    public MsgPushResultsQuery setEndTime(Date endTime) {
        this.endTime = endTime;
        return this;
    }

    public Integer getPageNum() {
        return pageNum;
    }

    public MsgPushResultsQuery setPageNum(Integer pageNum) {
        this.pageNum = pageNum;
        return this;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public MsgPushResultsQuery setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
        return this;
    }

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }

}
